#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<cstring>
using namespace std;
const int N = 1010, M = 1e4 + 10;
int n, m;
int dist[N];
struct node
{
    int a, b, c;
}e[M];
bool bf(int s)
{
    memset(dist, 0x3f, sizeof(dist));
    dist[s] = 0;
    bool flag;
    for (int i = 1; i <= n; i++)
    {
        flag = false;
        for (int j = 1; j <= m; j++)
        {
            int a = e[j].a;
            int b = e[j].b;
            int c = e[j].c;
            if (dist[a] + c < dist[b])
            {
                dist[b] = dist[a] + c;
                flag = true;
            }
        }
        if (flag == false)
        {
            return flag;
        }
    }

    return flag;
}
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= m; i++)
    {
        int s, t, w;
        cin >> s >> t >> w;
        e[i].a = s;
        e[i].b = t;
        e[i].c = -w;
    }
    int ret;
    bool st = bf(1);
    if (st)
    {
        cout << "Forever love" << endl;
        return 0;
    }
    ret = dist[n];
    st = bf(n);
    if (st)
    {
        cout << "Forever love" << endl;
        return 0;
    }
    cout << min(ret, dist[1]) << endl;
    return 0;
}